package com.bsg.upm.entity;

import java.io.Serializable;
import java.util.List;

/**
 * 主机实体类
 * 
 * @author HCK
 *
 */
public class HostEntity extends BaseEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 主机编码
	 */
	private String id;

	/**
	 * 所属集群
	 */
	private ClusterEntity cluster;

	/**
	 * 主机名称
	 */
	private String name;

	/**
	 * ssh登陆IP
	 */
	private String sshIp;

	/**
	 * ssh登陆用户
	 */
	private String sshUser;

	/**
	 * ssh登录密码
	 */
	private String sshPassword;

	/**
	 * 机房名称
	 */
	private String room;

	/**
	 * 机位名称
	 */
	private String seat;

	/**
	 * 容器上限
	 */
	private Integer maxContainer;

	/**
	 * 本地hdd设备
	 */
	private String hddDev;

	/**
	 * 本地ssd设备
	 */
	private String ssdDev;

	/**
	 * 关联san
	 */
	private SanEntity san;

	/**
	 * 关联编码
	 */
	private String relateId;

	/**
	 * 状态
	 */
	private String status;

	/**
	 * 描述
	 */
	private String description;

	/**
	 * 任务
	 */
	private List<TaskEntity> tasks;

	/**
	 * 获取主机编码
	 * 
	 * @return id 主机编码
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置主机编码
	 * 
	 * @param id
	 *            主机编码
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取所属集群
	 * 
	 * @return cluster 所属集群
	 */
	public ClusterEntity getCluster() {
		return cluster;
	}

	/**
	 * 设置所属集群
	 * 
	 * @param cluster
	 *            所属集群
	 */
	public void setCluster(ClusterEntity cluster) {
		this.cluster = cluster;
	}

	/**
	 * 获取主机名称
	 * 
	 * @return name 主机名称
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置主机名称
	 * 
	 * @param name
	 *            主机名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取ssh登陆IP
	 * 
	 * @return sshIp ssh登陆IP
	 */
	public String getSshIp() {
		return sshIp;
	}

	/**
	 * 设置ssh登陆IP
	 * 
	 * @param sshIp
	 *            ssh登陆IP
	 */
	public void setSshIp(String sshIp) {
		this.sshIp = sshIp;
	}

	/**
	 * 获取ssh登陆用户
	 * 
	 * @return sshUser ssh登陆用户
	 */
	public String getSshUser() {
		return sshUser;
	}

	/**
	 * 设置ssh登陆用户
	 * 
	 * @param sshUser
	 *            ssh登陆用户
	 */
	public void setSshUser(String sshUser) {
		this.sshUser = sshUser;
	}

	/**
	 * 获取ssh登录密码
	 * 
	 * @return sshPassword ssh登录密码
	 */
	public String getSshPassword() {
		return sshPassword;
	}

	/**
	 * 设置ssh登录密码
	 * 
	 * @param sshPassword
	 *            ssh登录密码
	 */
	public void setSshPassword(String sshPassword) {
		this.sshPassword = sshPassword;
	}

	/**
	 * 获取机房名称
	 * 
	 * @return room 机房名称
	 */
	public String getRoom() {
		return room;
	}

	/**
	 * 设置机房名称
	 * 
	 * @param room
	 *            机房名称
	 */
	public void setRoom(String room) {
		this.room = room;
	}

	/**
	 * 获取机位名称
	 * 
	 * @return seat 机位名称
	 */
	public String getSeat() {
		return seat;
	}

	/**
	 * 设置机位名称
	 * 
	 * @param seat
	 *            机位名称
	 */
	public void setSeat(String seat) {
		this.seat = seat;
	}

	/**
	 * 获取容器上限
	 * 
	 * @return maxContainer 容器上限
	 */
	public Integer getMaxContainer() {
		return maxContainer;
	}

	/**
	 * 设置容器上限
	 * 
	 * @param maxContainer
	 *            容器上限
	 */
	public void setMaxContainer(Integer maxContainer) {
		this.maxContainer = maxContainer;
	}

	/**
	 * 获取本地hdd设备
	 * 
	 * @return hddDev 本地hdd设备
	 */
	public String getHddDev() {
		return hddDev;
	}

	/**
	 * 设置本地hdd设备
	 * 
	 * @param hddDev
	 *            本地hdd设备
	 */
	public void setHddDev(String hddDev) {
		this.hddDev = hddDev;
	}

	/**
	 * 获取本地ssd设备
	 * 
	 * @return ssdDev 本地ssd设备
	 */
	public String getSsdDev() {
		return ssdDev;
	}

	/**
	 * 设置本地ssd设备
	 * 
	 * @param ssdDev
	 *            本地ssd设备
	 */
	public void setSsdDev(String ssdDev) {
		this.ssdDev = ssdDev;
	}

	/**
	 * 获取关联san
	 * 
	 * @return san 关联san
	 */
	public SanEntity getSan() {
		return san;
	}

	/**
	 * 设置关联san
	 * 
	 * @param san
	 *            关联san
	 */
	public void setSan(SanEntity san) {
		this.san = san;
	}

	/**
	 * 获取关联编码
	 * 
	 * @return relateId 关联编码
	 */
	public String getRelateId() {
		return relateId;
	}

	/**
	 * 设置关联编码
	 * 
	 * @param relateId
	 *            关联编码
	 */
	public void setRelateId(String relateId) {
		this.relateId = relateId;
	}

	/**
	 * 获取状态
	 * 
	 * @return status 状态
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置状态
	 * 
	 * @param status
	 *            状态
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取描述
	 * 
	 * @return description 描述
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * 设置描述
	 * 
	 * @param description
	 *            描述
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * 获取任务
	 * 
	 * @return tasks 任务
	 */
	public List<TaskEntity> getTasks() {
		return tasks;
	}

	/**
	 * 设置任务
	 * 
	 * @param tasks
	 *            任务
	 */
	public void setTasks(List<TaskEntity> tasks) {
		this.tasks = tasks;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "HostEntity [id=" + id + ", cluster=" + cluster + ", name=" + name + ", sshIp=" + sshIp + ", sshUser="
				+ sshUser + ", sshPassword=" + sshPassword + ", room=" + room + ", seat=" + seat + ", maxContainer="
				+ maxContainer + ", hddDev=" + hddDev + ", ssdDev=" + ssdDev + ", san=" + san + ", relateId=" + relateId
				+ ", status=" + status + ", description=" + description + ", tasks=" + tasks + "]";
	}

}
